package com.member.shop.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.member.shop.domain.SysBizUser;
import com.member.shop.domain.SysBizUserAddress;
import com.member.shop.domain.SysBizUserIntegralRecord;

import java.util.List;

/**
 * 用户积分记录Service接口
 *
 * @author thomas
 * @date 2024-10-27
 */
public interface ISysBizUserIntegralRecordService {
    /**
     * @param sysBizUser
     * @param typeCode   1 完成个人注册
     *                   2  首次分享
     *                   3  每次分享
     *                   4  cd
     *                   5  邀请N个人获得X积分
     *                   6  每日签到
     *                   7   连续签到一周
     *                   8   连续签到30天
     *                   9   参与评论
     *                   10  参与活动报名
     *                   11  比赛竞猜
     *                   12  参与投票
     *                   13  福利领取/次
     *                   14  购买周边
     *                   15  点赞
     */
    public Integer addIntegralRecord(SysBizUser sysBizUser, String typeCode);

    void addIntegralRecordByText(SysBizUser sysBizUser, String typeCode, Integer integral);

    /**
     * @param sysBizUser
     * @param typeCode   1 补签 2 领取福利 3 参与竞猜 4 购买商品
     * @param integral
     */
    public void minusIntegralRecord(SysBizUser sysBizUser, String typeCode, Integer integral);

    public void unIntegralRecord(SysBizUser sysBizUser, Integer integral);

    /**
     * 查询用户积分记录
     *
     * @param id 用户积分记录主键
     * @return 用户积分记录
     */
    public SysBizUserIntegralRecord selectSysBizUserIntegralRecordById(Long id);

    /**
     * 查询用户积分记录列表
     *
     * @param sysBizUserIntegralRecord 用户积分记录
     * @return 用户积分记录集合
     */
    public List<SysBizUserIntegralRecord> selectSysBizUserIntegralRecordList(SysBizUserIntegralRecord sysBizUserIntegralRecord);

    public List<SysBizUserIntegralRecord> selectSysBizUserIntegralRecordListByBussType(Integer bussType);

    /**
     * 新增用户积分记录
     *
     * @param sysBizUserIntegralRecord 用户积分记录
     * @return 结果
     */
    public int insertSysBizUserIntegralRecord(SysBizUserIntegralRecord sysBizUserIntegralRecord);

    /**
     * 修改用户积分记录
     *
     * @param sysBizUserIntegralRecord 用户积分记录
     * @return 结果
     */
    public int updateSysBizUserIntegralRecord(SysBizUserIntegralRecord sysBizUserIntegralRecord);

    /**
     * 批量删除用户积分记录
     *
     * @param ids 需要删除的用户积分记录主键集合
     * @return 结果
     */
    public int deleteSysBizUserIntegralRecordByIds(Long[] ids);

    /**
     * 删除用户积分记录信息
     *
     * @param id 用户积分记录主键
     * @return 结果
     */
    public int deleteSysBizUserIntegralRecordById(Long id);

    public int deleteSysBizUserIntegralRecordByBussKey(SysBizUserIntegralRecord sysBizUserIntegralRecord);


}
